Skip to content

Add 32-bit Linux CI coverage#2585

Merged
asuessenbach merged 4 commits into
KhronosGroup:mainfrom
danyalahmed1995:ci/add-32bit-linux
Jun 10, 2026
Merged

Add 32-bit Linux CI coverage#2585
asuessenbach merged 4 commits into
KhronosGroup:mainfrom
danyalahmed1995:ci/add-32bit-linux

Conversation

@danyalahmed1995

Copy link
Copy Markdown
Contributor

Adds a 32-bit Ubuntu CI matrix entry using gcc/g++ multilib and -m32 flags.

The sample build is skipped for this cross-compilation entry to avoid requiring 32-bit graphics/system libraries, while header generation and the unit test builds still run across the supported C++ standards.

This covers the Linux 32-bit CI case discussed in #2584 and helps exercise the kind of build configuration involved in #2583.

Tested on my fork:

  • CI Build / ubuntu-24.04 x86, Ninja, g++-14 passed
  • Full fork PR checks passed

Refs #2584.

@CLAassistant

CLAassistant commented Jun 2, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@M2-TE M2-TE left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good addition, thanks for the contribution!
Just got a few comments regarding the addition of new options in the matrix entry.

Comment thread .github/workflows/build.yml Outdated
Comment thread .github/workflows/build.yml Outdated
Comment thread .github/workflows/build.yml Outdated
Comment thread .github/workflows/build.yml Outdated
@sharadhr

sharadhr commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

I would also recommend using Clang with --target=i686-linux-gnu.

Co-authored-by: Jan Kuhlmann <33833587+M2-TE@users.noreply.github.com>
@danyalahmed1995

Copy link
Copy Markdown
Contributor Author

@sharadhr I went with gcc/g++ plus -m32 because it matched the existing Ubuntu GCC matrix entries closely and kept the first 32-bit Linux job minimal. It also passed in my fork before opening the PR.

But if you want the CI entry to model cross-compilation more explicitly, I can switch it to Clang with --target=i686-linux-gnu.

Co-authored-by: Jan Kuhlmann <33833587+M2-TE@users.noreply.github.com>
@M2-TE

M2-TE commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Looks good to me, nice work! The clang runner can be a separate PR imo.

@M2-TE

M2-TE commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Recent force-push removed the changes made from a previous one (a7c7c23 to 5fd2c8d), so please add them back in to allow runners to succeed. Specifically, the changes made to ubuntu packages that are to be installed need to be reintroduced.

Should be:

sudo apt install -y libgl-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev ${{ contains(matrix.env.arch, 'x86') && format('{0}-multilib {1}-multilib', matrix.env.c, matrix.env.cxx) || '' }}

Force pushes are evil! ;)

@danyalahmed1995

Copy link
Copy Markdown
Contributor Author

Should be good now

@asuessenbach

Copy link
Copy Markdown
Contributor

Thanks @danyalahmed1995 and @M2-TE for your contribution, adding this CI step!

@asuessenbach asuessenbach merged commit 3e78a68 into KhronosGroup:main Jun 10, 2026
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants